/* Sokoban
 * HIT3243
 * Authors: Mike Blackney, Ben Ingarfield, Kurniawan
 */

#pragma once

#include "dxf.h"

// Forward declaration:
class Level;
class CXFileEntity;

// The Registrar class to hold global data:
class Registrar : public dxf::RegistrarInterface {
public:
	virtual void RegisterStates( );
	virtual void RegisterCommands( );
	
	/*
	static int GetNumLives( );
	static double GetRespawn( );
	static double GetMonThink( );
	*/

	static const wchar_t* kTitle;
	static const wchar_t* kGame;
	static const wchar_t* kHiScore;
	static const wchar_t* kOptions;
	static const wchar_t* kHelp;

	static std::wstring sGameType;
	static long long iDifficulty /*, iAdvSpeed, iAdvRespawn, iAdvLives */;

	static int   iNumTurns, iNumPushes;
	static double fTime;
	static int  iLastLevel;
	static bool bEnteringScore;

	static bool bHasLoaded;

	static Level *const pLevel;

	// The initial 3d models we load:
	static CXFileEntity *mdl_crate;
	static CXFileEntity *mdl_ninja;
	static CXFileEntity *mdl_wall;
	static CXFileEntity *mdl_litwall;
	static CXFileEntity *mdl_floor;
	static CXFileEntity *mdl_targetfloor;
};
